跳到主要内容

1.3 异步计数器或Ripple计数器

计数器用于记忆数据的数字组合。在我们的日常生活中,计数器无处不在,时时刻刻都在发挥作用。一个典型的例子是数字闹钟,它在清晨唤醒你。

计数器有两种类型:

  • 同步计数器
  • 异步计数器

在本指南中,我们将学习异步计数器——它的定义、不同种类、优点、缺点以及应用。让我们深入了解……

异步计数器

异步计数器的输出独立于时钟信号。由于异步计数器中的触发器被提供不同的时钟信号,因此在产生输出时可能会有延迟。

设计异步计数器所需的逻辑门数量非常少,因此它们的设计非常简单。异步计数器的另一个名称是“逐级触发计数器”(Ripple Counters)。

逐级触发计数器中使用的触发器数量取决于计数器的状态数量(例如,模4、模2等)。计数器的输出状态数量称为计数器的“模数”(Modulus)或“MOD”。计数器可以拥有的最大状态数量是2n2^n,其中nn表示计数器中使用的触发器数量。

例如,如果我们有2个触发器,计数器的最大输出数量是4,即222^2。因此,它被称为“模4计数器”(MOD-4 counter)或“模数4计数器”(Modulus 4 counter)。

异步计数器的不同类型

在数字电子学中,有许多类型的异步计数器可供使用。它们包括:

  • 4位同步上计数器(4 bit synchronous UP counter)
  • 4位同步下计数器(4 bit synchronous DOWN counter)
  • 4位同步上/下计数器(4 bit synchronous UP / DOWN counter)
  • 异步4位上计数器(Asynchronous 4-bit UP counter)
  • 异步4位下计数器(Asynchronous 4-bit DOWN counter)

异步4位上计数器

alt text

上图展示了一个带有D触发器的4位异步上计数器。它可以计数从0到15的数字。所有触发器的时钟输入是级联的,每个触发器的D输入(数据输入)连接到触发器的状态输出。

这意味着触发器将在每个时钟信号的上升沿切换状态。时钟输入连接到第一个触发器。计数器中的其他触发器从上一个触发器的QQ'输出接收时钟信号输入。当时钟信号的正沿出现时,第一个触发器的输出会发生变化。

在4位异步上计数器中,触发器以切换模式连接,因此当时钟输入连接到第一个触发器FF0FF_0时,经过一个时钟脉冲后,其输出将变为202^0

每个触发器的QQ输出的上升沿会触发下一个触发器的时钟输入。它将下一个时钟频率触发为其输入频率的一半。每个单独触发器的QQ输出(Q0,Q1,Q2,Q3Q_0, Q_1, Q_2, Q_3)表示4位上计数器的计数,例如从202^0(1)到232^3(8)。

异步上计数器的工作原理

假设触发器的4个QQ输出最初为0000。当时钟脉冲的上升沿施加到FF0FF_0时,输出Q0Q_0将变为逻辑1,下一个时钟脉冲将使Q0Q_0输出变为逻辑0。这意味着时钟脉冲的输出状态会在一个周期内切换(从0变为1)。

由于FF0FF_0QQ'连接到第二个触发器的时钟输入,因此第二个触发器的时钟输入将变为1。这使得FF1FF_1的输出变为高电平(即Q1=1Q_1 = 1),表示值202^0。接下来的时钟脉冲将再次使Q0Q_0变为高电平。

因此,现在Q0Q_0Q1Q_1均为高电平,这使得4位输出变为1100₂。如果我们施加第四个时钟脉冲,它将使Q0Q_0Q1Q_1变为低电平状态,并切换FF2FF_2。因此,输出Q2Q_2将变为0010₂。由于这是一个4位上计数器,输出是从0、1、2、3……15,即从0000₂到1111₂(0到15₁₀)。

alt text

例如,如果当前计数值为3,那么上计数器将计算下一个计数值为4。

异步4位下计数器

alt text

上图展示了一个4位异步下计数器。它是上计数器的一个简单修改版本。4位下计数器将从15倒数到0。所有触发器的时钟输入是级联的,每个触发器的D输入(数据输入)连接到逻辑1。

这意味着触发器将在每个时钟信号的上升沿切换状态。时钟输入连接到第一个触发器。计数器中的其他触发器从上一个触发器的QQ输出接收时钟信号输入,而不是QQ'输出。

这里,Q0,Q1,Q2,Q3Q_0, Q_1, Q_2, Q_3表示4位下计数器的计数。当时钟信号的正沿出现时,第一个触发器的输出会发生变化。例如,如果当前计数值为3,那么上计数器将计算下一个计数值为2。输入时钟将导致下一个触发器的输出(计数)发生变化。

下计数器的操作与上计数器的操作完全相反。这里,每个输入时钟脉冲都会减少每个触发器的计数。因此,下计数器从15、14、13……0倒数,即从1111₂到0000₂(15₁₀到0)。

由于上计数器和下计数器都是基于异步时钟信号设计的,我们并不广泛使用它们,因为它们在高时钟速度下不可靠。

什么是时钟逐级延迟?

驱动电路的各个时钟脉冲的时间延迟之和称为“时钟逐级延迟”(Clock ripple)。下图解释了逻辑门如何在每个触发器中创建传播延迟。

alt text

时钟逐级延迟中逻辑门的传播延迟用蓝色线表示。它们各自会增加下一个触发器的延迟,所有这些单独触发器的延迟之和被称为电路的传播延迟。

由于所有触发器的输出在不同的时间间隔内发生变化,并且对于时钟信号的每个不同输入,输出每次都会产生一个新的值。例如,在第8个时钟脉冲时,输出应该从1110₂(7₁₀)变为0001₂(8₁₀),延迟时间为400到700纳秒。

对于第8个以外的时钟脉冲,序列将发生变化。

尽管这个问题阻止了电路作为可靠的计数器使用,但它仍然是一种简单有效的分频器,其中高频振荡器提供输入,链中的每个触发器将频率除以二。这就是关于时钟逐级延迟的全部内容。

异步3位上/下计数器

将上计数器和下计数器的概念结合起来,我们可以设计异步上/下计数器。3位异步上/下计数器如下图所示。

alt text

它可以根据时钟信号输入,向上或向下计数。

上计数

如果“UP”输入为1,“DOWN”输入为0,则第一个触发器到第三个触发器之间的与非门(NAND gates)将把FF0FF_0的非反相输出传递到FF1FF_1的时钟输入。同样,FF1FF_1QQ输出将传递到FF2FF_2的时钟输入。因此,上/下计数器执行上计数。

下计数

如果“DOWN”输入为1,“UP”输入为0,则第一个触发器到第三个触发器之间的与非门将把FF0FF_0的反相输出传递到FF1FF_1的时钟输入。同样,FF1FF_1QQ输出将传递到FF2FF_2的时钟输入。因此,上/下计数器执行下计数。

上/下计数器比单独的上计数器或下计数器更慢,因为额外的传播延迟会增加到与非门网络中。

异步计数器的优点

  • 易于设计:异步计数器可以通过T触发器或D触发器轻松设计。
  • 逐级触发特性:它们也被称为逐级触发计数器(Ripple Counters),适用于低速电路。
  • 分频功能:它们可以用作分频计数器,将输入频率除以nn,其中nn是一个整数。
  • 截断计数器应用:异步计数器还可以用作截断计数器,用于设计任意模数的计数器,包括偶数模(例如模4)和奇数模(例如模3)。

异步计数器的缺点

  • 再同步需求:有时可能需要额外的触发器用于“再同步”。
  • 截断计数器的反馈逻辑:对于截断计数器(模数不等于2n2^n),需要额外的反馈逻辑来实现正确的计数序列。
  • 大位数计数时的传播延迟:在计数大量位数时,异步计数器的传播延迟会变得非常大。
  • 高时钟频率下的计数误差:由于传播延迟,在高时钟频率下可能会出现计数错误。

异步计数器的应用

  • 频率分频器:异步计数器用作频率分频器,实现分频比为N的计数器。
  • 低功耗与低噪声应用:它们适用于低功耗应用和低噪声发射场景。
  • 异步十进制计数器设计:用于设计异步十进制计数器。
  • 环形计数器与约翰逊计数器:也用于环形计数器和约翰逊计数器的设计。
  • 模N逐级触发计数器:异步计数器用于模N逐级触发计数器,例如模3、模4、模8、模14、模10等。